home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / unix / volume20 / psroff / part06 < prev    next >
Encoding:
Internet Message Format  |  1989-10-17  |  24.6 KB

  1. Subject:  v20i038:  Troff upgrade for PostScript, DiTroff compatibility, Part06/06
  2. Newsgroups: comp.sources.unix
  3. Sender: sources
  4. Approved: rsalz@uunet.UU.NET
  5.  
  6. Submitted-by: Chris Lewis <eci386!clewis@uunet.uu.net>
  7. Posting-number: Volume 20, Issue 38
  8. Archive-name: psroff/part06
  9.  
  10. #! /bin/sh
  11. # This is a shell archive.  Remove anything before this line, then unpack
  12. # it by saving it into a file and typing "sh file".  To overwrite existing
  13. # files, type "sh file -c".  You can also feed this as standard input via
  14. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  15. # will see the following message at the end:
  16. #        "End of archive 6 (of 6)."
  17. # Contents:  ljtables.c
  18. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  19. if test -f 'ljtables.c' -a "${1}" != "-c" ; then 
  20.   echo shar: Will not clobber existing file \"'ljtables.c'\"
  21. else
  22. echo shar: Extracting \"'ljtables.c'\" \(23102 characters\)
  23. sed "s/^X//" >'ljtables.c' <<'END_OF_FILE'
  24. X/*    Copyright 1985, 1986, 1987, 1988 Chris Lewis
  25. X        All Rights Reserved
  26. X
  27. X    Permission to copy and further distribute is freely given provided 
  28. X    this copyright notice remains intact and that this software is not 
  29. X    sold for profit.
  30. X
  31. X    Project:    Generic Troff drivers
  32. X    Module:        ljtables.c
  33. X    Author:     Chris Lewis
  34. X    Specs:        Contains character tables for various fonts.
  35. X */
  36. X/*
  37. X * woods@cpi - Wed Feb  1 10:56:58 EST 1989
  38. X *
  39. X *    This has now been tested.  (on a DataProducts LZR1230)
  40. X *
  41. X *    The destination printer must have a resident TimesRoman font.
  42. X *    I would also suggested that the MathSymbol font be loaded, though
  43. X *    since I do not have such a cartidge, I have not tried this.
  44. X *
  45. X *    The symbol character definitions do require re-writing.
  46. X *
  47. X *    The troff font description files were obtained from another
  48. X *    similar package (troff2lj by Sverre Froyen <froyen@nmfecc.arpa>).
  49. X *    He generated them with an awk script from the HP font width tables.
  50. X *
  51. X *    I have somewhat mangled with the tables below, with some success.
  52. X *
  53. X *    There is no suggested placing for DOWNLOAD.
  54. X *
  55. X *    I've removed the orientation setting from the font sequences.
  56. X *    Orientation should be selected at initialization
  57. X */
  58. X
  59. X#include "defs.h"
  60. X
  61. X#if    defined(LJ) || defined(LK)
  62. X
  63. X#ifndef    SVR3
  64. X#ifndef    lint
  65. Xstatic char SCCSid[] = "@(#)ljtables.c: 1.2 Copyright 89/06/14 16:29:46 Chris Lewis";
  66. X#endif
  67. X#else
  68. X#ident  "@(#)ljtables.c: 1.2 Copyright 89/06/14 16:29:46 Chris Lewis" /*(SVR3)*/
  69. X#endif
  70. X
  71. X#include "lj.h"
  72. X
  73. X/*    Used for characters not in Roman8 Character set */
  74. X#define    NOPE    "\377"
  75. X
  76. X#ifdef    LJ
  77. Xstruct troff2befont ljStdFont[108] = {
  78. X
  79. X/*          +-------------------------------- Troff character number
  80. X        |
  81. X            |    +--------------------------- U: standard fonts
  82. X            |    |                            S: symbol font
  83. X            |    |                            D: draw macro
  84. X            |    |                            n: new font
  85. X            |    |
  86. X            |    |  +------------------------ X-shift (scaled by deci-point)
  87. X            |    |  |
  88. X            |    |  |  +--------------------- Y-shift (scaled by deci-point)
  89. X            |    |  |  |
  90. X            |    |  |  |  +------------------ Point-scale
  91. X            |    |  |  |  |
  92. X            |    |  |  |  |   +-------------- Sequence
  93. X            |    |  |  |  |   |
  94. X            |    |  |  |  |   |               Printable sequence title
  95. X            |    |  |  |  |   |                 |
  96. X            |    |  |  |  |   |                 |
  97. X            v    v  v  v  v   v                 v   */
  98. X    /*  1*/    {U, 0, 0, 1, "h",        "h"},
  99. X    /*  2*/    {U, 0, 0, 1, "t",        "t"},
  100. X    /*  3*/    {U, 0, 0, 1, "n",        "n"},
  101. X    /*  4*/    {U, 0.5, 0, 1, "m",        "m"},
  102. X    /*  5*/    {U, 0, 0, 1, "l",        "l"},
  103. X    /*  6*/    {U, 0, 0, 1, "i",        "i"},
  104. X    /*  7*/    {U, 0, 0, 1, "z",        "z"},
  105. X    /*  8*/    {U, 0, 0, 1, "s",        "s"},
  106. X    /*  9*/    {U, 0, 0, 1, "d",        "d"},
  107. X    /* 10*/    {U, 0, 0, 1, "b",        "b"},
  108. X    /* 11*/    {U, 0.5, 0, 1, "x",        "x"},
  109. X    /* 12*/    {U, 0, 0, 1, "f",        "f"},
  110. X    /* 13*/    {U, 0, 0, 1, "j",        "j"},
  111. X    /* 14*/    {U, 0, 0, 1, "u",        "u"},
  112. X    /* 15*/    {U, 0, 0, 1, "k",        "k"},
  113. X    /* 16*/    {U, 0, 0, 1, NOCODE,        "unassigned"},
  114. X    /* 17*/    {U, 0, 0, 1, "p",        "p"},
  115. X    /* 18*/    {S, 2.0, 0, 1, "\366",        "3/4 em"},
  116. X    /* 19*/    {U, 0, 0, 1, ";",        ";"},
  117. X    /* 20*/    {U, 0, 0, 1, NOCODE,        "unassigned"},
  118. X    /* 21*/    {U, 0, 0, 1, "a",        "a"},
  119. X    /* 22*/    {U, 0, 0, 1, "_",        "horizontal rule"},
  120. X    /* 23*/    {U, 0, 0, 1, "c",        "c"},
  121. X    /* 24*/    {U, 0, 0, 1, "`",        "` open"},
  122. X    /* 25*/    {U, 0, 0, 1, "e",        "e"},
  123. X    /* 26*/    {U, 0, 0, 1, "'",        "' close"},
  124. X    /* 27*/    {U, 0, 0, 1, "o",        "o"},
  125. X    /* 28*/    {S, 0, 0, 1, "\367",        "1/4"},
  126. X    /* 29*/    {U, 0, 0, 1, "r",        "r"},
  127. X    /* 30*/    {S, 0, 0, 1, "\370",        "1/2"},
  128. X    /* 31*/    {U, 0.5, 0, 1, "v",        "v"},
  129. X    /* 32*/    {U, 0, 0, 1, "-",        "- (hyphen)"},
  130. X    /* 33*/    {U, 0, 0, 1, "w",        "w"},
  131. X    /* 34*/    {U, 0, 0, 1, "q",        "q"},
  132. X    /* 35*/    {U, 0, 0, 1, "/",        "/"},
  133. X    /* 36*/    {U, 0, 0, 1, ".",        "."},
  134. X    /* 37*/    {U, 0, 0, 1, "g",        "g"},
  135. X    /* 38*/    {U, 0, 0, 1, "3/4",        "3/4"},
  136. X    /* 39*/    {U, 0, 0, 1, ",",        ","},
  137. X    /* 40*/    {U, 0, 0, 1, "&",        "&"},
  138. X    /* 41*/    {U, 0, 0, 1, "y",        "y"},
  139. X    /* 42*/    {U, 0, 0, 1, NOCODE,        "unassigned"},
  140. X    /* 43*/    {U, 0, 0, 1, "\%",        "%"},
  141. X    /* 44*/    {U, 0, 0, 1, NOCODE,        "unassigned"},
  142. X    /* 45*/    {U, 0, 0, 1, "Q",        "Q"},
  143. X    /* 46*/    {U, 0, 0, 1, "T",        "T"},
  144. X    /* 47*/    {U, 0, 0, 1, "O",        "O"},
  145. X    /* 48*/    {U, 0, 0, 1, "H",        "H"},
  146. X    /* 49*/    {U, 0, 0, 1, "N",        "N"},
  147. X    /* 50*/    {U, 0, 0, 1, "M",        "M"},
  148. X    /* 51*/    {U, 0, 0, 1, "L",        "L"},
  149. X    /* 52*/    {U, 0, 0, 1, "R",        "R"},
  150. X    /* 53*/    {U, 0, 0, 1, "G",        "G"},
  151. X    /* 54*/    {U, 0, 0, 1, "I",        "I"},
  152. X    /* 55*/    {U, 0, 0, 1, "P",        "P"},
  153. X    /* 56*/    {U, 0, 0, 1, "C",        "C"},
  154. X    /* 57*/    {U, 0, 0, 1, "V",        "V"},
  155. X    /* 58*/    {U, 0, 0, 1, "E",        "E"},
  156. X    /* 59*/    {U, 0, 0, 1, "Z",        "Z"},
  157. X    /* 60*/    {U, 0, 0, 1, "D",        "D"},
  158. X    /* 61*/    {U, 0, 0, 1, "B",        "B"},
  159. X    /* 62*/    {U, 0, 0, 1, "S",        "S"},
  160. X    /* 63*/    {U, 0, 0, 1, "Y",        "Y"},
  161. X    /*from here on are actually code 1-45, upper half of font */
  162. X    /* 64*/    {U, 0, 0, 1, "F",        "F"},
  163. X    /* 65*/    {U, 0, 0, 1, "X",        "X"},
  164. X    /* 66*/    {U, 0, 0, 1, "A",        "A"},
  165. X    /* 67*/    {U, 0, 0, 1, "W",        "W"},
  166. X    /* 68*/    {U, 0, 0, 1, "J",        "J"},
  167. X    /* 69*/    {U, 0, 0, 1, "U",        "U"},
  168. X    /* 70*/    {U, 0, 0, 1, "K",        "K"},
  169. X    /* 71*/    {U, 0, 0, 1, "0",        "0"},
  170. X    /* 72*/    {U, 0, 0, 1, "1",        "1"},
  171. X    /* 73*/    {U, 0, 0, 1, "2",        "2"},
  172. X    /* 74*/    {U, 0, 0, 1, "3",        "3"},
  173. X    /* 75*/    {U, 0, 0, 1, "4",        "4"},
  174. X    /* 76*/    {U, 0, 0, 1, "5",        "5"},
  175. X    /* 77*/    {U, 0, 0, 1, "6",        "6"},
  176. X    /* 78*/    {U, 0, 0, 1, "7",        "7"},
  177. X    /* 79*/    {U, 0, 0, 1, "8",        "8"},
  178. X    /* 80*/    {U, 0, 0, 1, "9",        "9"},
  179. X    /* 81*/    {U, 0, 0, 1, "*",        "*"},
  180. X    /* 82*/    {S, 2.0, 0, 1, "\366",        "minus"},
  181. X    /* 83*/    {U, 0, 0, 1, "fi",        "fi"},
  182. X    /* 84*/    {U, 0, 0, 1, "fl",        "fl"},
  183. X    /* 85*/    {U, 0, 0, 1, "ff",        "ff"},
  184. X    /* 86*/    {S, 0, 0, 1, "\277",        "cent sign"},
  185. X    /* 87*/    {U, 0, 0, 1, "ffl",        "ffl"},
  186. X    /* 88*/    {U, 0, 0, 1, "ffi",        "ffi"},
  187. X    /* 89*/    {U, 0, 0, 1, "(",        "("},
  188. X    /* 90*/    {U, 0, 0, 1, ")",        ")"},
  189. X    /* 91*/    {U, 0, 0, 1, "[",        "["},
  190. X    /* 92*/    {U, 0, 0, 1, "]",        "]"},
  191. X    /* 93*/    {S, 0, 0, 1, "\263",        "degree"},
  192. X    /* 94*/    {S, 0, 0, 1, "\275",        "dagger"},    /* */
  193. X    /* 95*/    {U, 0, 0, 1, "=",        "="},
  194. X    /* 96*/    {S, 0, 0, 1, "O\br",        "registered"},
  195. X    /* 97*/    {U, 0, 0, 1, ":",        ":"},
  196. X    /* 98*/    {U, 0, 0, 1, "+",        "+"},
  197. X    /* 99*/    {U, 0, 0, 1, NOCODE,        "unassigned"},
  198. X    /*100*/    {U, 0, 0, 1, "!",        "!"},
  199. X    /*101*/ {S, 0, 0, 1, "\272",        "bullet"},
  200. X    /*102*/    {U, 0, 0, 1, "?",        "?"},
  201. X    /*103*/ {S, 0, 0, 1, "'",        "foot mark"},
  202. X    /*104*/    {U, 0, 0, 1, "|",        "|"},
  203. X    /*105*/    {U, 0, 0, 1, NOCODE,        "unassigned"},
  204. X    /*106*/    {S, 0, 0, 1, "O\bc",        "copyright"},
  205. X    /*107*/    {S, 0, 0, 1, "\374",        "square"},
  206. X    /*108*/    {U, 0, 0, 1, "$",        "$"}
  207. X};
  208. X
  209. Xstruct troff2befont ljSymFont[] = {
  210. X/*          +-------------------------------- Troff character number
  211. X        |
  212. X            |    +--------------------------- U: standard fonts
  213. X            |    |                            S: symbol font
  214. X            |    |                            D: draw macro
  215. X            |    |
  216. X            |    |  +------------------------ X-shift (scaled by deci-point)
  217. X            |    |  |
  218. X            |    |  |  +--------------------- Y-shift (scaled by deci-point)
  219. X            |    |  |  |
  220. X            |    |  |  |  +------------------ Point-scale
  221. X            |    |  |  |  |
  222. X            |    |  |  |  |   +-------------- Sequence
  223. X            |    |  |  |  |   |
  224. X            |    |  |  |  |   |               Printable sequence title
  225. X            |    |  |  |  |   |                 |
  226. X            |    |  |  |  |   |                 |
  227. X            v    v  v  v  v   v                 v                    */
  228. X/****        0    {S, 0, 0, 1, NOCODE,        "unassigned"}, /* in htroff */
  229. X    /*  1*/    {S, 0, 0, 1, NOPE,        "psi"},
  230. X    /*  2*/    {S, 0, 0, 1, NOPE,        "theta"},
  231. X    /*  3*/    {S, 0, 0, 1, NOPE,        "nu"},
  232. X    /*  4*/    {S, 0, 0, 1, NOPE,        "mu"},
  233. X    /*  5*/    {S, 0, 0, 1, NOPE,        "lambda"},
  234. X    /*  6*/    {S, 0, 0, 1, NOPE,        "iota"},
  235. X    /*  7*/    {S, 0, 0, 1, NOPE,        "zeta"},
  236. X    /*  8*/    {S, 0, 0, 1, NOPE,        "sigma"},
  237. X    /*  9*/    {S, 0, 0, 1, NOPE,        "delta"},
  238. X    /* 10*/    {S, 0, 0, 1, NOPE,        "beta"},
  239. X    /* 11*/    {S, 0, 0, 1, NOPE,        "xi"},
  240. X    /* 12*/    {S, 0, 0, 1, NOPE,        "eta"},
  241. X    /* 13*/    {S, 0, 0, 1, NOPE,        "phi"},
  242. X    /* 14*/    {S, 0, 0, 1, NOPE,        "upsilon"},
  243. X    /* 15*/    {S, 0, 0, 1, NOPE,        "kappa"},
  244. X    /* 16*/    {S, 0, 0, 1, NOCODE,        "unassigned"},
  245. X    /* 17*/    {S, 0, 0, 1, NOPE,        "pi"},
  246. X    /* 18*/    {U, 0, 0, 1, "@",        "@"},
  247. X    /* 19*/    {S, 0, 0, 1, NOPE,        "down arrow"},
  248. X    /* 20*/    {S, 0, 0, 1, NOCODE,        "unassigned"},
  249. X    /* 21*/    {S, 0, 0, 1, NOPE,        "alpha"},
  250. X    /* 22*/    {S, -2.0, 0, 1, "|",        "or (was star)"},
  251. X    /* 23*/    {S, 0, 0, 1, NOPE,        "chi"},
  252. X    /* 24*/    {U, 0, 0, 1, "\042",        "double quote"},
  253. X    /* 25*/    {S, 0, 0, 1, NOPE,        "epsilon"},
  254. X    /* 26*/    {S, 0, 0, 1, "=",        "equation equal"},
  255. X    /* 27*/    {S, 0, 0, 1, NOPE,        "omicron"},
  256. X    /* 28*/    {S, 0, 0, 1, NOPE,        "left arrow"},
  257. X    /* 29*/    {S, 0, 0, 1, NOPE,        "rho"},
  258. X    /* 30*/    {S, 0, 0, 1, NOPE,        "up arrow"},
  259. X    /* 31*/    {S, 0, 0, 1, NOPE,        "tau"},
  260. X    /* 32*/    {S, 0.1, 0.7, 1, "_",        "_ underrule"},
  261. X    /* 33*/    {U, 0, 0, 1, "\\",        "\\"},
  262. X    /* 34*/    {S, 0, 0, 1, NOPE,        "Psi"},
  263. X    /* 35*/    {S, 0, 0, 1, "\273",        "bell system sign"},
  264. X    /* 36*/    {S, 0, 0, 1, NOPE,        "infinity"},
  265. X    /* 37*/    {S, 0, 0, 1, NOPE,        "gamma"},
  266. X    /* 38*/    {S, 0, 0, 1, NOPE,        "improper superset"},
  267. X    /* 39*/    {S, 0, 0, 1, NOPE,        "proportional to"},
  268. X    /* 40*/ {S, 0, 0, 1, NOPE,        "right hand"},
  269. X    /* 41*/    {S, 0, 0, 1, NOPE,        "omega"},
  270. X    /* 42*/    {S, 0, 0, 1, NOCODE,        "unassigned"},
  271. X    /* 43*/    {S, 0, 0, 1, NOPE,        "gradient"},
  272. X    /* 44*/    {S, 0, 0, 1, NOCODE,        "unassigned"},
  273. X    /* 45*/    {S, 0, 0, 1, NOPE,        "Phi"},
  274. X    /* 46*/    {S, 0, 0, 1, NOPE,        "Theta"},
  275. X    /* 47*/    {S, 0, 0, 1, NOPE,        "Omega"},
  276. X    /* 48*/    {S, 0, 0, 1, NOPE,        "union"},
  277. X    /* 49*/    {S, -9.0, -3.0, 1, "\260",    "root en extender (and horiz. box rule)"},
  278. X    /* 50*/    {S, 0, 0, 1, "\245",        "terminal sigma (was root em)"},
  279. X    /* 51*/    {S, 0, 0, 1, NOPE,        "Lambda"},
  280. X    /* 52*/    {S, 0, 0, 1, "\366",        "equation minus"},
  281. X    /* 53*/    {S, 0, 0, 1, NOPE,        "Gamma"},
  282. X    /* 54*/    {S, 0, 0, 1, NOPE,        "integral sign"},
  283. X    /* 55*/    {S, 0, 0, 1, NOPE,        "Pi"},
  284. X    /* 56*/    {S, 0, 0, 1, NOPE,        "subset of"},
  285. X    /* 57*/    {S, 0, 0, 1, NOPE,        "superset of"},
  286. X    /* 58*/    {S, -1.8, 0, 1, "~",        "approximates"},
  287. X    /* 59*/    {S, 0, 0, 1, NOPE,        "partial derivative"},
  288. X    /* 60*/    {S, 0, 0, 1, NOPE,        "Delta"},
  289. X    /* 61*/    {S, 0, -1.5, 1.2, NOPE,        "square root"},
  290. X    /* 62*/    {S, 0, 0, 1, NOPE,        "Sigma"},
  291. X    /* 63*/    {S, 0, 0, 1, "\254\b=",        "approx ="},
  292. X    /* 64*/    {U, 0, 0, 1, ">",        ">"},
  293. X    /* 65*/    {S, 0, 0, 1, NOPE,        "Xi"},
  294. X    /* 66*/    {U, 0, 0, 1, "<",        "<"},
  295. X    /* 67*/    {S, 0, 0, 1, "/",        "long slash (longer)"},
  296. X    /* 68*/    {S, 0, 0, 1, NOPE,        "intersect"},
  297. X    /* 69*/    {S, 0, 0, 1, NOPE,        "Upsilon"},
  298. X    /* 70*/    {S, -1.8, 0, 1, "^",        "logical not"},
  299. X    /* 71*/    {S, -3.0, 0, 1, NOPE,        "right ceiling"},
  300. X    /* 72*/    {S, -2.0, 0, 1, NOPE,        "left top brace"},
  301. X    /* 73*/    {S, -2.0, 0, 1, "|\b|\b|",    "bold vertical"},
  302. X    /* 74*/    {S, -2.0, 0, 1, "|",        "left ctr brace"},
  303. X    /* 75*/    {S, -2.0, 0, 1, NOPE,        "left bot brace"},
  304. X    /* 76*/    {S, -2.0, 0, 1, NOPE,        "right top brace"},
  305. X    /* 77*/    {S, -2.0, 0, 1, "|",        "right ctr brace"},
  306. X    /* 78*/    {S, -2.0, 0, 1, NOPE,        "right bot brace"},
  307. X    /* 79*/    {S, -3.0, 0, 1, NOPE,        "right floor"},
  308. X    /* 80*/    {S, 0, 0, 1, NOPE,        "left floor"},
  309. X    /* 81*/    {S, 0, 0, 1, NOPE,        "left ceiling"},
  310. X    /* 82*/    {U, 0, -1.0, 1, "*",        "multiply"},
  311. X    /* 83*/    {S, 0, 0, 1, ":\b\366",        "divide"},
  312. X    /* 84*/    {S, 0, 0, 1, "\376",        "plus-minus"},
  313. X    /* 85*/    {S, 0, 0, 1, "<=",        "<="},
  314. X    /* 86*/    {S, 0, 0, 1, ">=",        ">="},
  315. X    /* 87*/    {S, 0, 0, 1, NOPE,        "identically equal"},
  316. X    /* 88*/    {S, 0, 0, 1, "=\b/",        "not equal"},
  317. X    /* 89*/    {U, 0, 0, 1, "{",        "{"},
  318. X    /* 90*/    {U, 0, 0, 1, "}",        "}"},
  319. X    /* 91*/    {S, 0, 0, 1, "\250",        "acute accent"},
  320. X    /* 92*/    {S, 0, 0, 1, "\251",        "grave accent"},
  321. X    /* 93*/    {S, -1.8, 0, 1, "^",        "^"},
  322. X    /* 94*/    {U, 0, 0, 1, "#",        "#"},
  323. X    /* 95*/    {S, 0, 0, 1, NOPE,        "left hand"},
  324. X    /* 96*/    {S, 0, 0, 1, NOPE,        "member of"},
  325. X    /* 97*/    {S, -1.8, 0, 1, "~",        "~"},
  326. X    /* 98*/    {S, 0, 0, 1, NOPE,        "empty set"},
  327. X    /* 99*/    {U, 0, 0, 1, NOCODE,        "unassigned"},
  328. X    /*100*/    {S, 0, 0, 1, "\275\b|",        "dbl dagger"},
  329. X    /*101*/    {S, -3.0, 0, 1, "|",        "box rule (was parallel sign)"},
  330. X    /*102*/    {U, 0, 0, 1, "*",        "math * "},
  331. X    /*103*/    {S, 0, 0, 1, NOPE,        "improper subset"},
  332. X    /*104*/    {S, 0, 0, 1, NOPE,        "circle"},
  333. X    /*105*/    {S, 0, 0, 1, NOCODE,        "unassigned"},
  334. X    /*106*/    {S, 0, 0, 1, "+",        "equation plus"},
  335. X    /*107*/    {S, 0, 0, 1, NOPE,        "right arrow"},
  336. X    /*108*/    {S, 0, 0, 1, NOPE,        "section"}
  337. X};
  338. X#endif
  339. X
  340. X#ifdef    LK
  341. X
  342. X#define    CF(x)    ((x) - 'A')
  343. X
  344. Xstruct troff2befont lkStdFont[108] = {
  345. X
  346. X/*          +-------------------------------- Troff character number
  347. X        |
  348. X            |    +--------------------------- U: standard fonts
  349. X            |    |                            S: symbol font
  350. X            |    |                            D: draw macro
  351. X            |    |                            n: new font
  352. X            |    |
  353. X            |    |  +------------------------ X-shift (scaled by point)
  354. X            |    |  |
  355. X            |    |  |  +--------------------- Y-shift (scaled by point)
  356. X            |    |  |  |
  357. X            |    |  |  |  +------------------ Point-scale
  358. X            |    |  |  |  |
  359. X            |    |  |  |  |   +-------------- Sequence
  360. X            |    |  |  |  |   |
  361. X            |    |  |  |  |   |               Printable sequence title
  362. X            |    |  |  |  |   |                 |
  363. X            |    |  |  |  |   |                 |
  364. X            v    v  v  v  v   v                 v   */
  365. X    /*  1*/    {U, 0, 0, 1, "h",        "h"},
  366. X    /*  2*/    {U, 0, 0, 1, "t",        "t"},
  367. X    /*  3*/    {U, 0, 0, 1, "n",        "n"},
  368. X    /*  4*/    {U, 0, 0, 1, "m",        "m"},
  369. X    /*  5*/    {U, 0, 0, 1, "l",        "l"},
  370. X    /*  6*/    {U, 0, 0, 1, "i",        "i"},
  371. X    /*  7*/    {U, 0, 0, 1, "z",        "z"},
  372. X    /*  8*/    {U, 0, 0, 1, "s",        "s"},
  373. X    /*  9*/    {U, 0, 0, 1, "d",        "d"},
  374. X    /* 10*/    {U, 0, 0, 1, "b",        "b"},
  375. X    /* 11*/    {U, 0, 0, 1, "x",        "x"},
  376. X    /* 12*/    {U, 0, 0, 1, "f",        "f"},
  377. X    /* 13*/    {U, 0, 0, 1, "j",        "j"},
  378. X    /* 14*/    {U, 0, 0, 1, "u",        "u"},
  379. X    /* 15*/    {U, 0, 0, 1, "k",        "k"},
  380. X    /* 16*/    {U, 0, 0, 1, NOCODE,        "unassigned"},
  381. X    /* 17*/    {U, 0, 0, 1, "p",        "p"},
  382. X    /* 18*/    {S, 0, 0, 1, "v",        "3/4 em"},
  383. X    /* 19*/    {U, 0, 0, 1, ";",        ";"},
  384. X    /* 20*/    {U, 0, 0, 1, NOCODE,        "unassigned"},
  385. X    /* 21*/    {U, 0, 0, 1, "a",        "a"},
  386. X    /* 22*/    {U, 0, 0, 1, "_",        "horizontal rule"},
  387. X    /* 23*/    {U, 0, 0, 1, "c",        "c"},
  388. X    /* 24*/    {U, 0, 0, 1, "`",        "` open"},
  389. X    /* 25*/    {U, 0, 0, 1, "e",        "e"},
  390. X    /* 26*/    {U, 0, 0, 1, "'",        "' close"},
  391. X    /* 27*/    {U, 0, 0, 1, "o",        "o"},
  392. X    /* 28*/    {S, 0, 0, 1, "w",        "1/4"},
  393. X    /* 29*/    {U, 0, 0, 1, "r",        "r"},
  394. X    /* 30*/    {S, 0, 0, 1, "x",        "1/2"},
  395. X    /* 31*/    {U, 0, 0, 1, "v",        "v"},
  396. X    /* 32*/    {U, 0, 0, 1, "-",        "- (hyphen)"},
  397. X    /* 33*/    {U, 0, 0, 1, "w",        "w"},
  398. X    /* 34*/    {U, 0, 0, 1, "q",        "q"},
  399. X    /* 35*/    {U, 0, 0, 1, "/",        "/"},
  400. X    /* 36*/    {U, 0, 0, 1, ".",        "."},
  401. X    /* 37*/    {U, 0, 0, 1, "g",        "g"},
  402. X    /* 38*/    {U, 0, 0, 1, NOPE,        "3/4"},
  403. X    /* 39*/    {U, 0, 0, 1, ",",        ","},
  404. X    /* 40*/    {U, 0, 0, 1, "&",        "&"},
  405. X    /* 41*/    {U, 0, 0, 1, "y",        "y"},
  406. X    /* 42*/    {U, 0, 0, 1, NOCODE,        "unassigned"},
  407. X    /* 43*/    {U, 0, 0, 1, "\%",        "%"},
  408. X    /* 44*/    {U, 0, 0, 1, NOCODE,        "unassigned"},
  409. X    /* 45*/    {U, 0, 0, 1, "Q",        "Q"},
  410. X    /* 46*/    {U, 0, 0, 1, "T",        "T"},
  411. X    /* 47*/    {U, 0, 0, 1, "O",        "O"},
  412. X    /* 48*/    {U, 0, 0, 1, "H",        "H"},
  413. X    /* 49*/    {U, 0, 0, 1, "N",        "N"},
  414. X    /* 50*/    {U, 0, 0, 1, "M",        "M"},
  415. X    /* 51*/    {U, 0, 0, 1, "L",        "L"},
  416. X    /* 52*/    {U, 0, 0, 1, "R",        "R"},
  417. X    /* 53*/    {U, 0, 0, 1, "G",        "G"},
  418. X    /* 54*/    {U, 0, 0, 1, "I",        "I"},
  419. X    /* 55*/    {U, 0, 0, 1, "P",        "P"},
  420. X    /* 56*/    {U, 0, 0, 1, "C",        "C"},
  421. X    /* 57*/    {U, 0, 0, 1, "V",        "V"},
  422. X    /* 58*/    {U, 0, 0, 1, "E",        "E"},
  423. X    /* 59*/    {U, 0, 0, 1, "Z",        "Z"},
  424. X    /* 60*/    {U, 0, 0, 1, "D",        "D"},
  425. X    /* 61*/    {U, 0, 0, 1, "B",        "B"},
  426. X    /* 62*/    {U, 0, 0, 1, "S",        "S"},
  427. X    /* 63*/    {U, 0, 0, 1, "Y",        "Y"},
  428. X    /*from here on are actually code 1-45, upper half of font */
  429. X    /* 64*/    {U, 0, 0, 1, "F",        "F"},
  430. X    /* 65*/    {U, 0, 0, 1, "X",        "X"},
  431. X    /* 66*/    {U, 0, 0, 1, "A",        "A"},
  432. X    /* 67*/    {U, 0, 0, 1, "W",        "W"},
  433. X    /* 68*/    {U, 0, 0, 1, "J",        "J"},
  434. X    /* 69*/    {U, 0, 0, 1, "U",        "U"},
  435. X    /* 70*/    {U, 0, 0, 1, "K",        "K"},
  436. X    /* 71*/    {U, 0, 0, 1, "0",        "0"},
  437. X    /* 72*/    {U, 0, 0, 1, "1",        "1"},
  438. X    /* 73*/    {U, 0, 0, 1, "2",        "2"},
  439. X    /* 74*/    {U, 0, 0, 1, "3",        "3"},
  440. X    /* 75*/    {U, 0, 0, 1, "4",        "4"},
  441. X    /* 76*/    {U, 0, 0, 1, "5",        "5"},
  442. X    /* 77*/    {U, 0, 0, 1, "6",        "6"},
  443. X    /* 78*/    {U, 0, 0, 1, "7",        "7"},
  444. X    /* 79*/    {U, 0, 0, 1, "8",        "8"},
  445. X    /* 80*/    {U, 0, 0, 1, "9",        "9"},
  446. X    /* 81*/    {U, 0, 0, 1, "*",        "*"},
  447. X    /* 82*/    {U, 0, 0, 1, "-",        "minus"},
  448. X    /* 83*/    {U, 0, 0, 1, NOPE,        "fi"},
  449. X    /* 84*/    {U, 0, 0, 1, NOPE,        "fl"},
  450. X    /* 85*/    {U, 0, 0, 1, NOPE,        "ff"},
  451. X    /* 86*/    {S, 0, 0, 1, "?",        "cent sign"},
  452. X    /* 87*/    {U, 0, 0, 1, NOPE,        "ffl"},
  453. X    /* 88*/    {U, 0, 0, 1, NOPE,        "ffi"},
  454. X    /* 89*/    {U, 0, 0, 1, "(",        "("},
  455. X    /* 90*/    {U, 0, 0, 1, ")",        ")"},
  456. X    /* 91*/    {U, 0, 0, 1, "[",        "["},
  457. X    /* 92*/    {U, 0, 0, 1, "]",        "]"},
  458. X    /* 93*/    {S, 0, 0, 1, "3",        "degree"},
  459. X    /* 94*/    {CF('J'), 0, 0, 1, "N",        "dagger"},    /* Math 8b */
  460. X    /* 95*/    {U, 0, 0, 1, "=",        "="},
  461. X    /* 96*/    {CF('L'), 0, 0, 1, ",",        "registered"},    /* PiFonta */
  462. X    /* 97*/    {U, 0, 0, 1, ":",        ":"},
  463. X    /* 98*/    {U, 0, 0, 1, "+",        "+"},
  464. X    /* 99*/    {U, 0, 0, 1, NOCODE,        "unassigned"},
  465. X    /*100*/    {U, 0, 0, 1, "!",        "!"},
  466. X/***    /*101    {U, 0, 0, 1, "*",        "bullet"},    /* faked! */
  467. X/***/    /*101*/ {CF('J'), 0, 0, 1, "K",        "bullet"},    /* Math 8b */
  468. X    /*102*/    {U, 0, 0, 1, "?",        "?"},
  469. X/***    /*103    {U, 0, 0, 1, "'",        "foot mark"},    /* ' */
  470. X/***/    /*103*/ {CF('I'), 0, 0, 1, "'",        "foot mark"},    /* Math 8a */
  471. X    /*104*/    {U, 0, 0, 1, "|",        "|"},
  472. X    /*105*/    {U, 0, 0, 1, NOCODE,        "unassigned"},
  473. X    /*106*/    {CF('L'), 0, 0, 1, "-",        "copyright"},    /* PiFonta */
  474. X    /*107*/    {CF('L'), 0, 0, 1, "l",        "square"},    /* PiFonta */
  475. X    /*108*/    {U, 0, 0, 1, "$",        "$"}
  476. X};
  477. X
  478. Xstruct troff2befont lkSymFont[] = {
  479. X/*          +-------------------------------- Troff character number
  480. X        |
  481. X            |    +--------------------------- U: standard fonts
  482. X            |    |                            S: symbol font
  483. X            |    |                            D: draw macro
  484. X            |    |
  485. X            |    |  +------------------------ X-shift (scaled by point)
  486. X            |    |  |
  487. X            |    |  |  +--------------------- Y-shift (scaled by point)
  488. X            |    |  |  |
  489. X            |    |  |  |  +------------------ Point-scale
  490. X            |    |  |  |  |
  491. X            |    |  |  |  |   +-------------- Sequence
  492. X            |    |  |  |  |   |
  493. X            |    |  |  |  |   |               Printable sequence title
  494. X            |    |  |  |  |   |                 |
  495. X            |    |  |  |  |   |                 |
  496. X            v    v  v  v  v   v                 v                    */
  497. X/****        {S, 0, 0, 1, NOCODE,        "unassigned"}, /* in htroff table */
  498. X    /*  1*/    {S, 0, 0, 1, "w",        "psi"},
  499. X    /*  2*/    {S, 0, 0, 1, "h",        "theta"},
  500. X    /*  3*/    {S, 0, 0, 1, "m",        "nu"},
  501. X    /*  4*/    {S, 0, 0, 1, "l",        "mu"},
  502. X    /*  5*/    {S, 0, 0, 1, "k",        "lambda"},
  503. X    /*  6*/    {S, 0, 0, 1, "i",        "iota"},
  504. X    /*  7*/    {S, 0, 0, 1, "f",        "zeta"},
  505. X    /*  8*/    {S, 0, 0, 1, "r",        "sigma"},
  506. X    /*  9*/    {S, 0, 0, 1, "d",        "delta"},
  507. X    /* 10*/    {S, 0, 0, 1, "b",        "beta"},
  508. X    /* 11*/    {S, 0, 0, 1, "n",        "xi"},
  509. X    /* 12*/    {S, 0, 0, 1, "g",        "eta"},
  510. X    /* 13*/    {S, 0, 0, 1, "u",        "phi"},
  511. X    /* 14*/    {S, 0, 0, 1, "t",        "upsilon"},
  512. X    /* 15*/    {S, 0, 0, 1, "j",        "kappa"},
  513. X    /* 16*/    {S, 0, 0, 1, NOCODE,        "unassigned"},
  514. X    /* 17*/    {S, 0, 0, 1, "p",        "pi"},
  515. X    /* 18*/    {U, 0, 0, 1, "@",        "@"},
  516. X    /* 19*/    {CF('J'), 0, 0, 1, "#",        "down arrow"},
  517. X    /* 20*/    {S, 0, 0, 1, NOCODE,        "unassigned"},
  518. X    /* 21*/    {S, 0, 0, 1, "a",        "alpha"},
  519. X    /* 22*/    {S, 0, 0, 1, "|",        "or (was star)"},
  520. X    /* 23*/    {S, 0, 0, 1, "v",        "chi"},
  521. X    /* 24*/    {U, 0, 0, 1, "\042",        "double quote"},
  522. X    /* 25*/    {S, 0, 0, 1, "e",        "epsilon"},
  523. X    /* 26*/    {S, 0, 0, 1, "=",        "equation equal"},
  524. X    /* 27*/    {S, 0, 0, 1, "o",        "omicron"},
  525. X    /* 28*/    {CF('J'), 0, 0, 1, "$",        "left arrow"},
  526. X    /* 29*/    {S, 0, 0, 1, "q",        "rho"},
  527. X    /* 30*/    {CF('J'), 0, 0, 1, "!",        "up arrow"},
  528. X    /* 31*/    {S, 0, 0, 1, "s",        "tau"},
  529. X    /* 32*/    {S, .01, .14, 1, "_",        "_ underrule"},
  530. X    /* 33*/    {U, 0, 0, 1, "\\",        "\\"},
  531. X    /* 34*/    {S, 0, 0, 1, "W",        "Psi"},
  532. X    /* 35*/    {CF('L'), 0, 0, 1, "H",        "bell system sign"},
  533. X    /* 36*/    {S, 0, 0, 1, "$",        "infinity"},
  534. X    /* 37*/    {S, 0, 0, 1, "c",        "gamma"},
  535. X    /* 38*/    {CF('J'), 0, 0, 1, "?",        "improper superset"},
  536. X    /* 39*/    {S, 0, 0, 1, "&",        "proportional to"},
  537. X    /* 40*/ {CF('J'), 0, 0, 1, "&",        "right hand"},
  538. X    /* 41*/    {S, 0, 0, 1, "x",        "omega"},
  539. X    /* 42*/    {S, 0, 0, 1, NOCODE,        "unassigned"},
  540. X    /* 43*/    {S, 0, 0, 1, "Y",        "gradient"},
  541. X    /* 44*/    {S, 0, 0, 1, NOCODE,        "unassigned"},
  542. X    /* 45*/    {S, 0, 0, 1, "U",        "Phi"},
  543. X    /* 46*/    {S, 0, 0, 1, "H",        "Theta"},
  544. X    /* 47*/    {S, 0, 0, 1, "X",        "Omega"},
  545. X    /* 48*/    {CF('J'), 0, 0, 1, "5",        "union"},
  546. X    /* 49*/    {CF('J'), -.70, 0, 1, "0",    "root en extender"},
  547. X    /* 50*/    {S, 0, 0, 1, "[",        "terminal sigma (was root em)"},
  548. X    /* 51*/    {S, 0, 0, 1, "K",        "Lambda"},
  549. X    /* 52*/    {S, 0, 0, 1, "-",        "equation minus"},
  550. X    /* 53*/    {S, 0, 0, 1, "C",        "Gamma"},
  551. X    /* 54*/    {CF('J'), 0, 0, 1, "U",        "integral sign"},
  552. X    /* 55*/    {S, 0, 0, 1, "P",        "Pi"},
  553. X    /* 56*/    {CF('J'), 0, 0, 1, ":",        "subset of"},
  554. X    /* 57*/    {CF('J'), 0, 0, 1, ";",        "superset of"},
  555. X    /* 58*/    {U, 0, 0, 1, "~",        "approximates"},
  556. X    /* 59*/    {S, 0, 0, 1, "Z",        "partial derivative"},
  557. X    /* 60*/    {S, 0, 0, 1, "D",        "Delta"},
  558. X    /* 61*/    {S, 0, -.15, 1.2, "!",        "square root"},
  559. X    /* 62*/    {S, 0, 0, 1, "R",        "Sigma"},
  560. X    /* 63*/    {S, 0, 0, 1, "?",        "approx ="},
  561. X    /* 64*/    {U, 0, 0, 1, ">",        ">"},
  562. X    /* 65*/    {S, 0, 0, 1, "N",        "Xi"},
  563. X    /* 66*/    {U, 0, 0, 1, "<",        "<"},
  564. X    /* 67*/    {S, 0, 0, 1, "/",        "long slash (longer)"},
  565. X    /* 68*/    {CF('J'), 0, 0, 1, "6",        "intersect"},
  566. X    /* 69*/    {S, 0, 0, 1, "T",        "Upsilon"},
  567. X    /* 70*/    {CF('J'), 0, 0, 1, "H",        "logical not"},
  568. X    /* 71*/    {CF('J'), -.3, 0, 1, "p",    "right ceiling"},
  569. X    /* 72*/    {CF('J'), -.2, 0, 1, "b",    "left top brace"},
  570. X    /* 73*/    {CF('J'), 0, 0, 1, "v",        "bold vertical"},
  571. X    /* 74*/    {CF('J'), -.2, 0, 1, "c",    "left ctr brace"},
  572. X    /* 75*/    {CF('J'), -.2, 0, 1, "d",    "left bot brace"},
  573. X    /* 76*/    {CF('J'), -.2, 0, 1, "r",    "right top brace"},
  574. X    /* 77*/    {CF('J'), -.2, 0, 1, "s",    "right ctr brace"},
  575. X    /* 78*/    {CF('J'), -.2, 0, 1, "t",    "right bot brace"},
  576. X    /* 79*/    {CF('J'), -.3, 0, 1, "q",    "right floor"},
  577. X    /* 80*/    {CF('J'), 0, 0, 1, "a",        "left floor"},
  578. X    /* 81*/    {CF('J'), 0, 0, 1, "'",        "left ceiling"},
  579. X    /* 82*/    {S, 0, 0, 1, "*",        "multiply"},
  580. X    /* 83*/    {S, 0, 0, 1, "%",        "divide"},
  581. X    /* 84*/    {CF('J'), 0, 0, 1, "~",        "plus-minus"},
  582. X    /* 85*/    {S, 0, 0, 1, "\\",        "<="},
  583. X    /* 86*/    {S, 0, 0, 1, "^",        ">="},
  584. X    /* 87*/    {S, 0, 0, 1, "}",        "identically equal"},
  585. X    /* 88*/    {S, 0, 0, 1, "]",        "not equal"},
  586. X    /* 89*/    {U, 0, 0, 1, "{",        "{"},
  587. X    /* 90*/    {U, 0, 0, 1, "}",        "}"},
  588. X    /* 91*/    {S, 0, 0, 1, "(",        "acute accent"},
  589. X    /* 92*/    {S, 0, 0, 1, ")",        "grave accent"},
  590. X    /* 93*/    {S, 0, 0, 1, "*",        "^"},
  591. X    /* 94*/    {U, 0, 0, 1, "#",        "#"},
  592. X    /* 95*/    {CF('J'), 0, 0, 1, "(",        "left hand"},
  593. X    /* 96*/    {CF('J'), 0, 0, 1, "7",        "member of"},
  594. X    /* 97*/    {S, 0, 0, 1, ",",        "~"},
  595. X    /* 98*/    {CF('J'), 0, 0, 1, "X",        "empty set"},
  596. X    /* 99*/    {U, 0, 0, 1, NOCODE,        "unassigned"},
  597. X    /*100*/    {CF('J'), 0, 0, 1, "O",        "dbl dagger"},
  598. X    /*101*/    {CF('J'), -.2, 0, 1, "v",    "box rule (was parallel sign)"},
  599. X    /*102*/    {U, 0, 0, 1, "*",        "math * "},
  600. X    /*103*/    {CF('J'), 0, 0, 1, ">",        "improper subset"},
  601. X    /*104*/    {CF('J'), 0, 0, 1, "M",        "circle"},
  602. X    /*105*/    {CF('I'), 0, 0, 1, NOCODE,    "unassigned"},
  603. X    /*106*/    {CF('I'), 0, 0, 1, "+",        "equation plus"},
  604. X    /*107*/    {CF('J'), 0, 0, 1, "\042",    "right arrow"},
  605. X    /*108*/    {S, 0, 0, 1, "=",        "section"}
  606. X};
  607. X#endif
  608. X#endif
  609. END_OF_FILE
  610. if test 23102 -ne `wc -c <'ljtables.c'`; then
  611.     echo shar: \"'ljtables.c'\" unpacked with wrong size!
  612. fi
  613. # end of 'ljtables.c'
  614. fi
  615. echo shar: End of archive 6 \(of 6\).
  616. cp /dev/null ark6isdone
  617. MISSING=""
  618. for I in 1 2 3 4 5 6 ; do
  619.     if test ! -f ark${I}isdone ; then
  620.     MISSING="${MISSING} ${I}"
  621.     fi
  622. done
  623. if test "${MISSING}" = "" ; then
  624.     echo You have unpacked all 6 archives.
  625.     echo "Read README to install psroff"
  626.     rm -f ark[1-9]isdone
  627. else
  628.     echo You still need to unpack the following archives:
  629.     echo "        " ${MISSING}
  630. fi
  631. ##  End of shell archive.
  632. exit 0
  633.  
  634.